import request from "@/utils/request";

const WAREHOUSE_BASE_URL = "/api/v1/warehouse";

const WarehouseAPI = {
    /** 获取仓库信息分页数据 */
    getPage(queryParams?: WarehousePageQuery) {
        return request<any, PageResult<WarehousePageVO[]>>({
            url: `${WAREHOUSE_BASE_URL}/page`,
            method: "get",
            params: queryParams,
        });
    },
    /**
     * 获取仓库信息表单数据
     *
     * @param id 仓库信息ID
     * @returns 仓库信息表单数据
     */
    getFormData(id: number) {
        return request<any, WarehouseForm>({
            url: `${WAREHOUSE_BASE_URL}/${id}/form`,
            method: "get",
        });
    },

    /**
     *  添加仓库信息
     *
     *  @param data 仓库信息表单数据
     */
    add(data: WarehouseForm) {
        return request({
            url: `${WAREHOUSE_BASE_URL}`,
            method: "post",
            data: data,
        });
    },

    /**
     * 更新仓库信息
     *
     * @param id 仓库信息ID
     * @param data 仓库信息表单数据
     */
     update(id: number, data: WarehouseForm) {
        return request({
            url: `${WAREHOUSE_BASE_URL}/${id}`,
            method: "put",
            data: data,
        });
    },

    /**
     * 批量删除仓库信息，多个以英文逗号(,)分割
     *
     * @param ids 仓库信息ID字符串，多个以英文逗号(,)分割
     */
     deleteByIds(ids: string) {
        return request({
            url: `${WAREHOUSE_BASE_URL}/${ids}`,
            method: "delete",
        });
    }
}

export default WarehouseAPI;

/** 仓库信息分页查询参数 */
export interface WarehousePageQuery extends PageQuery {
    /** 仓库编码 */
    warehouseSn?: string;
    /** 仓库名称 */
    warehoustName?: string;
    /** 仓库电话 */
    warehousePhone?: string;
    /** 仓库联系人 */
    contact?: string;
    /** 省 */
    province?: string;
    /** 市 */
    city?: string;
    /** 区 */
    distrct?: string;
    /** 仓库地址 */
    address?: string;
    /** 仓库状态：0禁用，1启用 */
    warehouseStatus?: number;
    createTime?: [string, string];
}

/** 仓库信息表单对象 */
export interface WarehouseForm {
    /** 仓库ID */
    id?:  number;
    /** 仓库名称 */
    warehoustName?:  string;
    /** 仓库电话 */
    warehousePhone?:  string;
    /** 仓库联系人 */
    contact?:  string;
    /** 省 */
    province?:  string;
    /** 市 */
    city?:  string;
    /** 区 */
    distrct?:  string;
    /** 仓库地址 */
    address?:  string;
    /** 仓库状态：0禁用，1启用 */
    warehouseStatus?:  number;
}

/** 仓库信息分页对象 */
export interface WarehousePageVO {

    id?: number | string;
    /** 仓库编码 */
    warehouseSn?: string;
    /** 仓库名称 */
    warehoustName?: string;
    /** 仓库电话 */
    warehousePhone?: string;
    /** 仓库联系人 */
    contact?: string;
    /** 省 */
    province?: string;
    /** 市 */
    city?: string;
    /** 区 */
    distrct?: string;
    /** 仓库地址 */
    address?: string;
    /** 仓库状态：0禁用，1启用 */
    warehouseStatus?: number;
    createTime?: Date;
}
